package com.product.android.ui.showImage;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RelativeLayout;

import com.common.android.ui.widget.CompatibleViewPager;
import com.nd.android.u.allcommon.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;

/**
 * 浏览图片
 * 这个activity 需要 imageList,position,isLocalUri
 * 在子类中不能再使用setContentView(),可以将要添加的功能模块放在相对布局rel_image_bottom中
 * 
 * <br>Created 2014年9月24日 下午5:23:52
 * @version  
 * @author   林时苗		
 *
 * @see 	 
 * 
 * Copyright(c) 2009-2014, TQ Digital Entertainment, All Rights Reserved
 *
 */
public class FlowImageActivity extends Activity {

	public static final String IMAGE_LIST="ImageList";
	public static final String POSITION="position";
	public static final String IS_LOCAL_URI="isLocalUri";
	
	//需要恢复的量
	protected ArrayList<CommonImage> imageList = null;
	protected int position=0;
	protected boolean isLocalUri=false;
	
	protected FlowImageAdapter adapter=null;
	protected CompatibleViewPager viewPager=null;
	
	//基础浏览图片的界面中，在底部留下一块区域用于在子类中运用;
	protected RelativeLayout rel_image_bottom=null;
	
	protected DisplayImageOptions displayImageOpt=null;

	/**
	 * 
	 * 
	 * <br>Created 2014年9月24日 下午5:28:18
	 * @param arg0
	 * @author       林时苗
	 */
	@Override
	protected void onCreate(Bundle arg0) {
		super.onCreate(arg0);
		setContentView(R.layout.flow_image_activity);
		viewPager = (CompatibleViewPager) findViewById(R.id.photo_pager);
		
		rel_image_bottom=(RelativeLayout) findViewById(R.id.rel_image_bottom);
		
		initValue(arg0);
		
		adapter = new FlowImageAdapter(FlowImageActivity.this,imageList,isLocalUri, displayImageOpt);
		viewPager.setAdapter(adapter);
		viewPager.setCurrentItem(position);
	}
	
	/**
	 * 保存
	 * 
	 * <br>Created 2014年9月24日 下午5:30:21
	 * @param arg0 arg0
	 * @author       林时苗
	 */
	@SuppressWarnings("unchecked")
	protected void initValue(Bundle arg0) {
		// get data from intent;
		// 判断arg0是否为空，即判断是否属于恢复重建activity;
		// 若imageList 不为空，者说明在子类中已对imageList 进行赋值;
		if (null == arg0 && null == imageList) {
			// 直接调用activity
			imageList = (ArrayList<CommonImage>) (getIntent()
					.getSerializableExtra(IMAGE_LIST));
			position = getIntent().getIntExtra(POSITION, 0);
			isLocalUri = getIntent().getBooleanExtra(IS_LOCAL_URI, false);
		} else if (null != arg0) {
			// 恢复activity
			imageList = (ArrayList<CommonImage>) arg0.getSerializable(IMAGE_LIST);
			position = arg0.getInt(POSITION);
			isLocalUri = arg0.getBoolean(IS_LOCAL_URI);
		}
	}

	/**
	 * 保存
	 * 
	 * <br>Created 2014年9月24日 下午5:30:21
	 * @param outState
	 * @author       林时苗
	 */
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		outState.putInt(POSITION, position);
		outState.putSerializable(IMAGE_LIST, imageList);
		outState.putBoolean(IS_LOCAL_URI, isLocalUri);
	}

	/**
	 * 
	 * 
	 * <br>Created 2014年9月24日 下午5:38:33
	 * @author       林时苗
	 */
	@Override
	protected void onDestroy() {
		super.onDestroy();
		adapter.Destroy();
	}

	/**
	 * 
	 * 
	 * <br>Created 2014年9月24日 下午5:38:42
	 * @author       林时苗
	 */
	@Override
	protected void onPause() {
		super.onPause();
		adapter.justQuit();
	}

}
